
'''
类的魔术方法是指的在定义好一个类时，python系统会提前帮我们在类中设置了一些特殊方法，这些方法一般都是用__魔术方法名__来命名的。
__init__ 初始化
__new__  开辟内存，并且将内存地址，再赋值给实例对象
__class__ :可以查看一个对象的数据类型
__bases__:查看某个类的父类（基类）是谁
'''
import  time
class Student(object):
    stu_count = 0
    def __init__(self,name):
        self.name = name
        print('我是初始化方法')
        Student.stu_count +=1
        print(Student.stu_count)
    def __new__(cls, *args, **kwargs):
        print('我是new方法')
        return  object.__new__(cls)

    def __del__(self):
        Student.stu_count -=1
        print(Student.stu_count)
    def __call__(self, *args, **kwargs):
        print('hhhhh')
zs = Student('张三')
Ls = Student('张三')
# print (type ('hehe'))
# print ('hh'.__class__.__class__)
# # type --> 元类
# print(int.__class__)
# print(object.__bases__)
# print(zs)z
zs()
# for i in range(10):
#     time.sleep(1)
#     print( '--'*20)